Principles for Digital Gardening
2025年中には、baku89.iconのメモやポートフォリオを全部一つのホームページにまとめたい
Principles and Their Design Implications
分類を信じない
すべてのページはルート直下に置く
コンテンツとタクソノミーを区別しない
「Aへのリンクが貼られている」 ⇔ 「Aに属する」という同値関係
投稿タイプを単一にする
「著者」「ニュース」のような、固有のメタデータ付きの投稿タイプを作る代わりに、投稿タイプを単一にし、すべての投稿タイプを表現できるようなスキームを付与する
ページは常に加筆され続けるもの
明示的に「日記」として書かれたもの以外は、時系列によるタイムラインを用いない
永続的にする
プレーンテキストを信じよ
Newt、MicroCMSよりもHTMLやMarkdownの寿命のほうが(おそらく)長い
Wayback Machine-friendly
SEOのためではなく、Wayback Machneに適切にクロールされるためにServer-Side Generationする
ドメインは10年間取る
ページのURLは永続的にする
ページのモード
published: true: パーマリンクが固定され、バージョン管理がなされている状態。引用することができる
論文におけるIn Proceedings の概念。一度掲載されたものは、DOIが付与され、内容が改ざんされることなく、本人の意志を問わず永続的に公開され続ける
published: false: 公開されず、書いた本人にしか見れない
draft: 無責任なメモ書き。デフォルトの状態。公開されてはいるが、随時内容が変わる可能性があり、かつアーカイブもされない
とすると published | draft | private のほうが良くない?
ページのリンクのされかた
sage: 一覧表示はされないが、リンクをたどることで到達することは出来る
unlisted: URLを知らない人にしか見れないページ。URL末尾にパスワード代わりのハッシュが付く。baku89.com/the-post-name/aif9d38xe21 のように
protected: GitHub Sponsor, Patoreon等、何らかのメンバーシップによる認証を必須とする
パスワード付きのページは要らない。
code:page-attributes.ts
type PageAttribute = {
title: string | {ja?: string; en?: string}
date: string
published: boolean
draft: boolean
restrict: 'sage' | 'unlisted' | 'protected'
}
https://youtu.be/fY2sfrV2zho?si=ELoBmIZHpwseCDkI
メモとWikiとCMSを兼ね備えたデジタル庭を今年中に整えたい 欲しい
ObsidianのようなLocal-first性
CosenseのようなCRDTベース?の共同編集(あまり必須じゃない)
Nuxt ContentのようなMarkdown + 拡張構文(MDC)
どうしたい?
現状のポートフォリオなどのコンテンツを全部そっちに移す
画像やCVなどもそちらに
実装
Wordpress + WPGraphQL
Xserverで(あんまり褒められた使い方じゃないけど)Node.js/Nitroを走らせる
メモ
Voult全体をgitで管理するのもいいが、そうなるとモバイルでの編集性が悪くなる
Parsing Obsidian-specific syntax in Nuxt Content